package com.pk.platform.business.core.dao.impl;

import java.util.List;
import java.util.Map;

import javax.sql.DataSource;

import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.simple.SimpleJdbcTemplate;
import org.springframework.stereotype.Service;

import com.globant.jabsorb.JabsorbService;
import com.pk.platform.business.core.dao.IBaseDao;
import com.pk.platform.util.WebUtil;

@JabsorbService(getAlias="baseDao", getInterface=IBaseDao.class)
@Service
public class BaseDaoImpl implements IBaseDao {

	private SimpleJdbcTemplate sjt;
	
	private JdbcTemplate jt;
	
	public void add(String sql) {
		this.getSjt().update(sql);
	}

	public void del(String sql) {
		this.getSjt().update(sql);
	}

	public String getOne(String sql) {
		List<Map<String, Object>> list = this.queryForList(sql);
		if(list.size() > 0)
		{
			return WebUtil.toJSONString(list.get(0));
		}
		return null;
	}
	
	public String getList(String sql)
	{
		List<Map<String, Object>> list = this.queryForList(sql);
		return WebUtil.toJSONString(list);
	}

	public void update(String sql) {
		this.getSjt().update(sql);
	}
	
	public void setDataSource(DataSource ds)
    {
    	jt = new JdbcTemplate(ds);
    	sjt = new SimpleJdbcTemplate(jt);
    }

	public SimpleJdbcTemplate getSjt() {
		return sjt;
	}
	
	private List<Map<String, Object>> queryForList(String sql) {
		return this.getSjt().queryForList(sql);
	}

}
